查看原文
其他

课程 |《深度学习原理与TensorFlow实践》学习笔记(二)

2017-08-31 AI科技大本营


《深度学习原理与TensorFlow实践》

第二部分笔记来啦~~~

边听课边看笔记效果更好哦~

看完不要忘记五星好评,

顺便再关注一下我们的系列课程

《深度学习从基础到真实项目实战》~~

(深度学习原理/TensorFlow实践+图像识别应用+在线答疑)


作者 | 王清


TensorFlow基础使用


  • 环境准备

    • TensorFlow安装

    • 常用Python库介绍

  • 实例解析

    • Kaggle平台及Titanic题目介绍

    • 代码解析

    • TensorBoard 可视化

  • 传统机器学习的优化技巧

    • 数据可视化

    • 特征工程

    • 经典机器学习算法模型

  • TFLearnKeras介绍及示例程序解析


环境准备


TensorFlow安装


  • 官方文档:https://www.tensorflow.org/install/


常用Python库介绍


  • NumPy (http://www.numpy.org/) 

    • 为Python提供基础科学计算能力。

    • Numpy快速入门:http://cs231n.github.io/python-numpy-tutorial/

  • pandas (http://pandas.pydata.org/) 

    • 高性能数据结构和数据分析工具,提供了一种高效的DataFrame结构,可以自动对齐、补全数据,免去了由于输入数据缺失导致的问题。

  • Matplotlib (http://matplotlib.org/) 

    • 功能强大的画图引擎,可以制作高质量的图表。

  • PIL (http://www.pythonware.com/products/pil/) 

    • 标准图片处理库,能够方便地读入和输出包括 jpg、png 等多种常见类型的图像文件,还能对图像做切割、翻转、添加文字等变换。

  • Jupyter Notebook (http://jupyter.org/) 

    • 开源的交互式数据分析处理平台,以 Web 网页的形式创建和分享文档,并可以在文档中插入代码段,交互式的查看代码运行结果。

  • scikit-learn (http://scikit-learn.org/) 

    • 机器学习工具库,封装了多种常用的分类、回归、聚类、数据将为、数据预处理等方法。

  • OpenCV (http://opencv.org/) 

    • 跨平台机器视觉工具库,包含大量计算机视觉基本算法和高级功能。

  • One Platform to Have Them All – Anaconda 个人推荐

  • (https://www.continuum.io/downloads) 

    • 用于科学计算的Python发行版,支持各大系统平台,提供包管理和环境管理的功能,预装好了众多Package(包括上述Python库)。


实例解析


Kaggle 平台及Titanic题目介绍


  • Kaggle 平台是著名的数据分析竞赛平台

  • Kaggle Datasets 网址:https://www.kaggle.com/datasets

  • Titanic 题目网址:https://www.kaggle.com/c/titanic

  • 题目描述: 

    • 输入:乘客信息,包括姓名、性别、客舱等级、年龄等

    • 输出:判别每个乘客是否幸存

  • 题目分析: 

    • 二分类问题:Survived (=1) or Deceased (=0)

    • 数据规模:训练集891条信息,测试集418条信息


代码解析


  • 课程代码: https://github.com/DeepVisionTeam/TensorFlowBook/tree/master/Titanic

  • 数据读入及预处理 

    • 使用pandas读入csv文件,读入为pandas.DataFrame对象

    • 预处理 

      • 剔除空数据

      • 将 ‘Sex’ 字段转换为int类型(’male’=0,’female’=1)

      • 选取数值类型的字段,抛弃字符串类型字段

    • 根据先验选出有用的特征字段,例如,妇女和儿童有机会先上救生艇(性别,年龄),课程示例中选取了6个字段,即特征有6个维度

    • 利用 one-hot encoding 预处理标签,标签是一个二维 Vector,如,幸存的标签(1,0),遇难的标签(0, 1)

    • 利用 sk-learn 将训练数据分为训练集和验证集,防止过拟合

  • 构建计算图和训练迭代 

    • 采用逻辑回归作为该二分类问题的分类器:y=softmax(xW+b)

    • 使用 tf.placeholder 声明输入占位符

    • 用 tf.Variable() 声明 Weights 和 bias 变量

    • 构造前向传播计算图 y_pred = tf.nn.softmax(tf.matmul(input, weights) + bias)

    • 声明代价函数:使用交叉熵(cross-entropy)作为代价函数(注意极小误差值的加入)

    • 加入 SGD 优化算法

    • 计算准确率

    • 构建迭代 & 执行训练 

      • 启动Session,代入数据(feed_dict)进行计算,训练结束后使用验证集评估训练效果,train_op 优化训练过程没有返回值,cost tensor 有返回值 loss:_,loss = sess.run([train_op, cost], feed_dict=feed)

      • 数据量小可直接用 numpy,数据量更建议使用 tensor

  • 存储和加载训练模型等 

    • 通过 tf.train.Save 来存储和加载模型


TensorBoard 可视化


  • TensorBoard 的工作方式是启动一个 Web 服务,该服务进程从 TensorFlow 程序执行所得的事件日志文件(event files)中读取概要(summary)数据,然后将数据在网页中绘制成可视化的图表。


传统机器学习的优化技巧


数据可视化


  • 帮助理解数据,分析特征重要程度,便于筛选特征


特征工程


  • 数据清洗 & 预处理 

    • 对存在字段缺失、格式错误的样本进行处理

    • 二值化(如,是否贵族)、标准化、归一化(如,年龄0~1),可以加快收敛,减小类内干扰,避免过拟合

    • 根据阈值过滤掉方差小(相关性小)的变量

    • 通过计算变量与标签的相关系数,留下相关性高的特征

    • 根据决策树或随机森林,选择重要程度高的特征

    • 利用PCA降维等算法,对数据进行变换,选择区分度最高的特征组合


经典机器学习算法模型


  • 逻辑回归

  • SVM

  • 神经网络

  • 决策树

  • 随机森林(Titanic 竞赛中效果最好的方法)


TFLearn、Keras介绍及示例程序解析


  • TFLearn (https://github.com/tflearn/tflearn) 

    • 基于 TensorFlow 的更高层 API 库,具有更高程度的模块化,无缝兼容 TensorFlow 原生用法

    • 官方推出的仿照 scikit-learn 设计的高级 API,对常用的分类回归模型进行了封装,使得实现一个分类器仅需几行代码。

  • Keras (https://keras.io/) 

    • 高级神经网络API库,代码可运行于TensorFlow、CNTK或Theano之上,也支持 TensorBoard,与 TensorFlow 在性能上没有区别(以TF为后端)。

  • TensorFlow学习资源:Awesome TensorFlow https://github.com/jtoy/awesome-tensorflow


相关阅读

《深度学习原理与TensorFlow实践》学习笔记(一)



没看够?点击阅读原文~~边学边看~~


原文链接:

http://blog.csdn.net/applecore123456/article/details/74065229


您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存